/* Š„‚èž‚ÝŠÖŒW */

#include "bootpack.h"
#include <stdio.h>

void init_pic(void)
/* PIC 可编程中断控制器的初始化 */
{
	io_out8(PIC0_IMR,  0xff  ); /* 禁止PIC0所有中断 */
	io_out8(PIC1_IMR,  0xff  ); /* 禁止PIC1所有中断 */

	io_out8(PIC0_ICW1, 0x11  ); /* 边沿触发 */
	io_out8(PIC0_ICW2, 0x20  ); /* IRQ0-7 对应的中断号为INT20-27 */
	io_out8(PIC0_ICW3, 1 << 2); /* PIC1连接到IRQ2 */
	io_out8(PIC0_ICW4, 0x01  ); /* 无缓冲区模式 */

	io_out8(PIC1_ICW1, 0x11  ); /* 边沿触发 */
	io_out8(PIC1_ICW2, 0x28  ); /* IRQ8-15对应的中断号为INT28-2f */
	io_out8(PIC1_ICW3, 2     ); /* PIC1连接到IRQ2 */
	io_out8(PIC1_ICW4, 0x01  ); /* 无缓冲区模式 */

	io_out8(PIC0_IMR,  0xfb  ); // 11111011 ,禁止PIC0中除IRQ2外的所有中断
	io_out8(PIC1_IMR,  0xff  ); // 禁止PIC1中的所有8个中断

	return;
}

//void inthandler27(int *esp)
//{
//	io_out8(PIC0_OCW2, 0x67); 
//
//	return;
//}

